﻿using Ucb.Workshop.Dal;
//using Ucb.Workshop.Model;
using System;

namespace Ucb.Workshop.Dal
{
    public class Pedidoo
    {
        DBManager conexion = new DBManager();
        Pedidoo ped = new Pedidoo();
      
       int _cod_pedido;
        public int CodPedido
        {
            get { return _cod_pedido; }
            set { _cod_pedido = value; }
        }
        DateTime _fecha;

        public DateTime Fecha
        {
            get { return _fecha; }
            set { _fecha = value; }
        }

        string _estado;

        public string Estado
        {
            get { return _estado; }
            set { _estado = value; }
        }

        float _total;

        public float Total
        {
            get { return _total; }
            set { _total = value; }
        }

        public void Insertar()
        {
            string consulta = "INSERT INTO pedido(fecha, estado, total) VALUES('" + this.ped.Fecha.ToShortDateString() + "', 'PEDIDO', " + this.ped.Total + ")";
            //MessageBox.Show(consulta);
            conexion.EjecutarConsulta(consulta, "Pedido registrado!!!");

        }

        public void InsertarCompra()
        {
            string consulta = "INSERT INTO pedido(fecha, estado, total) VALUES('" + this.ped.Fecha.ToShortDateString() + "', 'COMPRA', " + this.ped.Total + ")";

            conexion.EjecutarConsulta(consulta, "Compra registrada!!!");
            //conexion.ejecutarConsulta("insert into pedido(fecha, estado, total) values('2009-04-22','COMPRA', " + this.Total + ")", "Compra Registrada!!!");
        }

        // Metodo que modifica el estado del pedido
        public void ComprarPedido()
        {
            string consulta = "UPDATE pedido SET estado = 'PEDIDO_COMPRA' WHERE cod_pedido = " + this.ped.CodPedido;
            conexion.EjecutarConsulta(consulta);
        }

        // Metodo que elimina un pedido
        public void Eliminar()
        {

            string consulta = "DELETE FROM pedido WHERE cod_pedido = " + this.ped.CodPedido + " AND estado = 'PEDIDO'";
            conexion.EjecutarConsulta(consulta, "Pedido Eliminado!!!");
        }
        public void Modifica(int codig, string estado)
        {
            string consulta = "UPDATE pedido SET estado = '" + estado +"' WHERE cod_pedido = " + codig + "";

            conexion.EjecutarConsulta(consulta, "El Estado a sido modificado!");
        }
        public void Modificar()
        {
            string consulta = "UPDATE pedido SET estado = '" + this.ped.Estado + "' WHERE cod_pedido = " + this.ped.CodPedido + "";

            conexion.EjecutarConsulta(consulta, "El Estado a sido modificado!");
        }

        // metodo que retorna el cod_pedido con el cual se inserto en la BD
        public int CodPedidos()
        {
            int codigo = 0;
            string consulta = "SELECT MAX(cod_pedido) FROM pedido ";
            System.Data.SqlClient.SqlDataReader valores = conexion.ExeConsulta(consulta);

            if (valores.HasRows)
            {

                while (valores.Read())
                {
                    codigo = valores.GetInt32(0);
                }

            }
            return codigo;
        }

        // Metodo que verifica si existe el codigo
        public bool ExisteCodigo()
        {
            string consulta = "SELECT * FROM pedido WHERE codigo = '" + this.ped.CodPedido + "'";
            System.Data.SqlClient.SqlDataReader valores = conexion.ExeConsulta(consulta);

            if (valores.HasRows)
                return true;
            else
                return false;
        }

        // Metodo que recupera el detalle de un pedido
        /*
        public ArrayList detallePedido()
        {
            string consulta = "SELECT pv.codigo, p.descripcion, pv.cantidad, pv.precio_compra, pro.empresa FROM producto p, provee pv, detalle_pedido dp, proveedor pro WHERE dp.cod_provee = pv.cod_provee AND pv.cod_producto = p.cod_producto AND pv.cod_proveedor = pro.cod_proveedor AND dp.cod_pedido = "+this.Cod_pedido+"";
            SqlDataReader valores = conexion.ExeConsulta(consulta);
            if (valores.HasRows)
            {
                ArrayList detalle = new string[valores.,7];
                while (valores.Read())
                {
                    string[] detalle = { valores.GetInt32(0).ToString(), valores.GetString(1), valores.GetInt32(2).ToString(), valores.GetFloat(3).ToString() };
                    
                }
                return null;
            }
            else 
                return null;
          
        }*/
    }

}
